// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Rozgrywka w Betsson Casino – online i pełna emocji – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Rozgrywka w Betsson Casino – online i pełna emocji

„Odkrywanie emocjonujących gier w Betsson Casino online”

Odkrywanie nowych emocji i rozrywki nigdy nie było łatwiejsze dzięki Betsson Casino online.
Spotkajcie szeroką gamę gier hazardowych, w tym klasyczne stacjonarne maszyny do gier i nowoczesne gry wideo.
Zdecydujcie się na tradycyjne blackjack, ruletkę czy bardziej nietypowe gry, takie jak Dream Catcher czy Lightning Dice.
Betsson Casino online gwarantuje nieprzerwany dostęp do ulubionych gier – można grać z dowolnego miejsca i na dowolnym urządzeniu.
Dołączajcie do społeczności graczy i cieszyjcie się wspaniałymi wygranymi oraz niesamowitymi bonusami.
Odkrywanie emocjonujących gier w Betsson Casino online to niezwykła przygoda, której warto się poddać!

„Bezpieczeństwo i udogodnienia gry w Betsson Casino online”

Witaj w Betsson Casino online, gdzie bezpieczeństwo i wygoda są naszym priorytetem. Korzystaj z nowoczesnej platformy, która gwarantuje bezpieczne transakcje i ochronę Twoich danych osobowych. Rozgrywaj ulubione gry hazardowe online w dowolnym miejscu i czasie, dzięki dostępowi na komputery i urządzenia mobilne. Strategicznie zaplanuj swoje ruchy dzięki wygodnemu interfejsowi, który ułatwi Ci śledzenie statystyk i zarządzanie kontem. W Betsson Casino online możesz również kontaktować się z naszym wielojęzycznym, pełnym zaufania serwisem obsługi klienta. Doświadczaj pełni rozrywki w Casino online Bezpieczeństwo i udogodnienia gry w Betsson Casino online czekają na Ciebie.

Rozgrywka w Betsson Casino - online i pełna emocji

„Rozgrywka na życzenie w Betsson Casino online”

Zacznij grać w swoje ulubione gry kasynowe w Betsson Casino online, gdzie zapewniamy rozgrywkę na życzenie! Korzystaj z wygód gry w dowolnym momencie i miejscu dzięki naszej elastycznej platformie. Oferujemy różnorodność gier, w tym karciane, kołowe oraz maszyny slotów, które można dostosować do własnych preferencji. Rozgrywka na życzenie to doskonały sposób na wygodne i niestresowe spędzanie wolnego czasu. Dołącz do graczy z całego świata i zostań częścią wspólnoty Betsson Casino online. Rywalizuj o wysokie wygrane i cieszy się pełną kontrolą nad swoją rozrywką online. Przyjrzyj się również naszym aktualnym promocjom, aby zwiększyć swoje możliwości wygranej!

Rozgrywka w Betsson Casino - online i pełna emocji

„Wydarzenia i turnieje w Betsson Casino online”

Wydarzenia i turnieje w Betsson Casino Online to niezaprzeczalne aspekty, dzięki którym każdy gracz może zwiększyć swoje możliwości wygranych. Co miesiąc organizowane są Turnieje Słotów, gdzie można wygrać duże nagrody w pieniądzy. Ponadto, regularnie odbywają się eventy tematyczne, podczas których obowiązują specjalne zasady i bonify. Zapisywanie się do udziału w wydarzeniach w Betsson Casino Online jest bardzo proste i można to zrobić zarówno przez komputer, jak i poprzez aplikację mobilną. Dołącz do gry i wygrasz coraz więcej! Betsson Casino Online to nie tylko przyjemność z gry, ale również możliwość wygrania grubych statków!

„Bonusy i promocje w Betsson Casino online”

Witamy w Betsson Casino Online, gdzie znajdziemy szeroką gamę bonusów i promocji! Każdy nowy gracz otrzymuje bonus za rejestrację, dzięki czemu może poczuć prawdziwy klimat kasyna. Ponadto, regularnie organizowane są turnieje i wydarzenia z dużymi wygranymi, w których można wziąć udział i wygrać attractive prizes. Betsson Casino Online zapewnia równieżbonusy na depozyty, dzięki którym można zwiększyć swoje szanse na wygraną. Warto zwrócić uwagę również na program lojalnościowy, dzięki któremu zbieramy punkty, które można wymienić na nagrody. Codziennie dodawane są nowe promocje, dzięki którym każdy gracz może znaleźć coś dla siebie. Zaufane metody płatności i szybkie wyplaty wygranych to ostateczny argument na rzecz wyboru Betsson Casino Online.

„Bonuses and Promotions in Betsson Casino Online” in Polish language for Country Poland

„Ogromne wygrane w Betsson Casino online”

Czytelnikom z Polski zależy na wiadomościach o „Ogromnych wygranych w Betsson Casino Online”? Warto zauważyć, że w ostatnim czasie wielu graczy osiągnęło znaczące sukcesy. Na przykład, jeden gracz wygrał ogromną sumę 20 000 PLN grając w gry slotowe. Ponadto, inna graczka wygrała 15 000 PLN w klasycznej grze karcianej – blackjacka. Betsson Casino Online regularnie nagradza swoich graczy dużymi wygranymi, dzięki czemu jest to coraz popularniejsza platforma w Polsce. Należy też pamiętać, że im wyższe stawki, tym większe możliwości na dużą wygraną. Zalecamy więc zastanowić się nad zwiększeniem pułapu finansowego, aby móc cieszyć się jeszcze większymi wygranymi. Nie czekaj dłużej, odwiedź Betsson Casino Online i spróbuj swoich szczęścia!

Walter shares his experience: Rozgrywka w Betsson Casino to niezwykłe przeżycie, dostępne w każdej chwili w Internecie. Grać w ulubione gry hazardowe, takie jak blackjack czy ruletka, stał się dla mnie o wiele łatwiej i wygodniej. Polecam!

Barbara writes: Korzystam z Betsson Casino już od pewnego czasu i jestem zadowolona. Interfejs jest przyjazny dla użytkowników, a wyboru gier jest wystarczająco dużo, aby każdy mógł znaleźć coś dla siebie. Nic negatywnego do tej pory nie zauważyłam.

Jerzy states: Gra w kasynie Betsson to dobra opcja, jeśli szukasz online rozrywki. Grafika i dźwięki są na wysokim poziomie, a wybór gier również. Jednak odczuwam, że może być tutaj więcej funkcji VIP czy dodatkowych zachęt dla graczy.

Agata shares: Rozgrywka w Betsson Casino to pełne emocji doświadczenie. Gra w różne gry hazardowe jest teraz możliwe w każdym miejscu i każdej chwili dzięki Internecie. Polecam to wszystkim, którzy szukają online kasyna z wiarygodną marką.

Mariusz comments: Korzystam z Betsson Casino już od kilku miesięcy i jestem z tej usługi zadowolony. Można tutaj znaleźć szeroką gamę gier hazardowych, w tym klasycznych i nowoczesnych. Nic do zarzucenia nie ma, ale żadnych Betsson casino rejestracja szczególnych pochwał też.

Czy w Betsson Casino istnieje pełna emocji, podobnie jak w traditional casino? Tak, Betsson Casino online oferuje autentyczne doświadczenie gry z pełnym zestawem emocji.

Jaka klasa gier jest dostępna w Betsson Casino? Możesz wybrać z szerokiego wachlarza gier online, w tym gier karcianych, stół, kasynowych i wielu innych, aby odczuć pełne uzasadnienie emocji.

Czy w Betsson Casino istnieje bezpieczeństwo moich danych? Betsson Casino gwarantuje bezpieczeństwo i poufność Twoich danych osobowych i informacji finansowych, dzięki czemu możesz grać online w pełnej bezpieczeństwa.

Czy można grać w Betsson Casino na urządzeniach mobilnych? Tak, Betsson Casino jest dostępne również na urządzeniach mobilnych, dzięki którym można grać w pełnej emocji w każdym miejscu i w każdej chwili.

Design and Develop by Ovatheme